﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QuanLyThietBi.DAL.Models;
using QuanLyThietBi.BLL;

namespace QuanLyThietBi
{
    public partial class ThemMoiChinhSuaThietBi : Form
    {
        //Khai báo biến Business Object
        private LoaiThietBiBO loaiThietBiBO;
        private TinhTrangBO tinhtrangBO;
        private ThietBiBO thietbiBO;
        private int thietbiId = -1;
        THIETBI thietbi;

        public ThemMoiChinhSuaThietBi(int thietbiID)
        {
            thietbiId = thietbiID;
            thietbiBO = new ThietBiBO();
            THIETBI tb = thietbiBO.GetThietBiById(thietbiId);

            InitializeComponent();

            txtTenThietBi.Text = tb.ten_thiet_bi;
            BindDataToComboBoxLoaiThietBi();
            cbxLoaiThietBi.SelectedValue = tb.loai_thiet_bi;
            BindDataToComboBoxTinhTrang();
            cbxTinhTrang.SelectedValue = tb.tinh_trang;
            txtHangSanXuat.Text = tb.hang_san_xuat;
            txtMaThietBi.Text = tb.ma_thiet_bi;
            txtNamMua.Text = tb.nam_mua;
            //txtMoTa.Text = tb.
        }

        public ThemMoiChinhSuaThietBi()
        {
            InitializeComponent();
        }

        private void ThemMoiChinhSuaThietBi_Load(object sender, EventArgs e)
        {
            //Gọi hàm đổ dữ liệu lúc load cái formhiet
            if (thietbiId == -1)
            {
                BindDataToComboBoxLoaiThietBi();
                BindDataToComboBoxTinhTrang();
            }
        }

        /// <summary>
        /// Đổ dữ liệu vào combobox Loai Thiet Bi
        /// </summary>
        private void BindDataToComboBoxLoaiThietBi()
        {
            loaiThietBiBO = new LoaiThietBiBO();
            List<LOAITHIETBI> dsLoaiThietBi = loaiThietBiBO.GetAllLoaiThietBi();
            if (dsLoaiThietBi != null && dsLoaiThietBi.Count > 0)
            {
                cbxLoaiThietBi.DataSource = dsLoaiThietBi;
                cbxLoaiThietBi.DisplayMember = "loai_thiet_bi";
                cbxLoaiThietBi.ValueMember = "id";
            }
        }

        /// <summary>
        /// Đổ dữ liệu vào combobox Tình Trạng
        /// </summary>
        private void BindDataToComboBoxTinhTrang()
        {
            tinhtrangBO = new TinhTrangBO();
            List<TINHTRANG> dsTinhTrang = tinhtrangBO.GetAllTinhTrang();
           // dsTinhTrang = dsTinhTrang.Where(t => t.id != 2).ToList();
            if (dsTinhTrang != null && dsTinhTrang.Count > 0)
            {
                cbxTinhTrang.DataSource = dsTinhTrang;
                cbxTinhTrang.DisplayMember = "tinh_trang";
                cbxTinhTrang.ValueMember = "id";
            }
        }

        /// <summary>
        /// Goi Su kien cllick cua button Luu
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnLuu_Click(object sender, EventArgs e)
        {
            bool hople = true;
            if (string.IsNullOrEmpty(txtTenThietBi.Text.Trim()))
            {
                hople = false;
                txtTenThietBi.Focus();
                txtTenThietBi.BackColor = Color.Red;
                //MessageBox.Show("Tên thiết bị không được để trống !!!");
            }
            else
            {
                txtTenThietBi.BackColor = Color.White;
            }

            //if (string.IsNullOrEmpty(txtHangSanXuat.Text.Trim()))
            //{
            //    hople = false;
            //    txtHangSanXuat.Focus();
            //    txtHangSanXuat.BackColor = Color.Red;
            //    //MessageBox.Show("Hãng sản xuất không được để trống !!!");
            //}
            //else
            //{
            //    txtHangSanXuat.BackColor = Color.White;
            //}

            if (hople)
            {
                if (thietbiId == -1)
                {
                    //Lay du lieu tu form 
                    thietbi = new THIETBI()
                    {
                        ten_thiet_bi = txtTenThietBi.Text.Trim(),
                        loai_thiet_bi = Convert.ToInt32(cbxLoaiThietBi.SelectedValue),
                        mo_ta = txtMoTa.Text.Trim(),
                        ma_thiet_bi = txtMaThietBi.Text.Trim(),
                        hang_san_xuat = txtHangSanXuat.Text.Trim(),
                        tinh_trang = Convert.ToInt32(cbxTinhTrang.SelectedValue),
                        da_xoa = 0,
                        nam_mua = txtNamMua.Text.Trim()
                    };

                    thietbiBO = new ThietBiBO();
                    thietbiBO.SaveThietBi(thietbi);
                }
                else
                {
                    thietbi = thietbiBO.GetThietBiById(thietbiId);
                    if (thietbi != null)
                    {
                        thietbi.ten_thiet_bi = txtTenThietBi.Text.Trim();
                        thietbi.loai_thiet_bi = Convert.ToInt32(cbxLoaiThietBi.SelectedValue);
                        thietbi.mo_ta = txtMoTa.Text.Trim();
                        thietbi.ma_thiet_bi = txtMaThietBi.Text.Trim();
                        thietbi.hang_san_xuat = txtHangSanXuat.Text.Trim();
                        thietbi.tinh_trang = Convert.ToInt32(cbxTinhTrang.SelectedValue);
                        thietbi.da_xoa = 0;
                        thietbi.nam_mua = txtNamMua.Text.Trim();
                    }

                    thietbiBO = new ThietBiBO();
                    thietbiBO.UpdateThietBi(thietbi);
                }

                LICHSUTHIETBI lichsutb = new LICHSUTHIETBI()
                {
                    id_thiet_bi = thietbi.id,
                    ngay = DateTime.Now,
                    noi_dung = "Chỉnh sửa thông tin thiết bị",
                    mo_ta = txtMoTa.Text.Trim(),
                    tinh_trang_thiet_bi = txtTinhTrangThietBi.Text.Trim(),
                    de_xuat_sua_chua = txtDeXuat.Text.Trim(),
                    //ngay_ban_giao = DateTime.Today
                };

                LichSuThietBiBO lichsuBO = new LichSuThietBiBO();
                lichsuBO.SaveLichSuThietBi(lichsutb);
                

                MessageBox.Show("Lưu thiết bị thành công","Thông báo !!!");

                QuanLyThietBi ql = new QuanLyThietBi();
                ql.Show();
                this.Hide();
            }
        }

        private void btnThemThietBi_Click(object sender, EventArgs e)
        {
            ThemSuaLoaiThietBi tsltb = new ThemSuaLoaiThietBi();
            tsltb.Show();
            this.Hide();
        }

        private void btnTroLai_Click(object sender, EventArgs e)
        {
            QuanLyThietBi ql = new QuanLyThietBi();
            ql.Show();
            this.Hide();
        }
    }
}
